![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 0 Dołączył: 21.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam pytanko jakie logowanie najlepiej zrobic? tzn
Jezeli login jest ok i hasło ok to w ciastko wrzucic losowe cyferki i zapisac je np. w bazie i jezeli ciastko i to z bazy bedzie sie zgadzac to pokaze jakies dane dla uzytkownika tak? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 190 Pomógł: 0 Dołączył: 12.02.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
W ciastku powinien być login i hasło, raczej nic więcej. Przy każdym przeładowaniu strony należy wtedy sprawdzić, czy użytkownik o takim loginie istnieje i czy podane jest poprawne hasło, bo użytkownik zawartość ciastka może sobie zmienić w każdej chwili. Jeśli w bazie użytkowników hasła masz kodowane w MD5() to do ciastka wrzuć hasło już zakodowane tym systemem.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 5 Dołączył: 8.11.2004 Skąd: trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
Zdecydowanie odradzam ciastka,
można bardzo łatwo się gdzieś pomylić, a to sie nie przeładuje strony, a to setcookie będzie po wysłaniu nagłowka, zamiast tego lepiej użyć sesje, zmienna $_SESSION zachowuje się bardzo podobnie do zwykłych zmiennych (z tą różnicą, że jest widoczna wszędzie), operacje przypisania wyglądają podobnie jak dla zwykłej zmiennej, nie trzeba używać specjalnie funkcji żeby ustawić zmienną (jak to jest w przypadku ciastek) po za tym masz już id sejsi (nie musisz nic losować) Ten post edytował php programmer 28.02.2006, 09:08:14 |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
~php programmer wybacz ale to co napisałeś to głupie argumenty.
Cytat(php programmer @ 2006-02-28 09:04:51) Zdecydowanie odradzam ciastka, Dlaczego?Cytat(php programmer @ 2006-02-28 09:04:51) można bardzo łatwo się gdzieś pomylić, Stosowanie sesji nie gwarantuje Ci, że się nie pomylisz. Tak samo możesz się pomylić jak przy cookiesCytat(php programmer @ 2006-02-28 09:04:51) a to sie nie przeładuje strony, a to setcookie będzie po wysłaniu nagłowka, 1. A po co Ci przeładowanie strony?2. "A to się napisze session_start()" po wysłąniu nagłówków (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Tak samo jak w cookies Cytat(php programmer @ 2006-02-28 09:04:51) zamiast tego lepiej użyć sesje, zmienna $_SESSION zachowuje się bardzo podobnie do zwykłych zmiennych (z tą różnicą, że jest widoczna wszędzie), A co powiesz o zmiennej $_COOKIE :?:Cytat(php programmer @ 2006-02-28 09:04:51) operacje przypisania wyglądają podobnie jak dla zwykłej zmiennej, nie trzeba A tu musisz używać session_start() i session_destroy()używać specjalnie funkcji żeby ustawić zmienną (jak to jest w przypadku ciastek) A poza tym nie wiem czy wiesz, ale korzystanie z sesji powoduje ustawianie cookie na komputerze użytkownika. No chyba że ich nie akceptuje, wtedy UID idzie w linkach i łatwo o włam. Nie mówię, że nie masz racji. Bo to jest subiektywne podejście i ocena. Ale jak już chcesz coś zargumentować , to podaj jakieś normalne argumenty. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 5 Dołączył: 8.11.2004 Skąd: trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
Nie chce się tu wykłucać, ale session_start() piszesz tylko raz na początku strony,
bez żadnych argumentów, wręcz mechanicznie, a przypisanie wartości wymaga tylko:
i już można używać zwyczajnie tej zmiennej dwie linijki niżej podczas gdy przy cookie masz:
i widzisz tą zmienną dopiero przy kolejnej wizycie, np przeładowaniu strony na dodatek kiedyś przez pomyłkę napisałem 3600 zamiast time()+3600 (strata czasu na szukanie błedu) sam zreszta jeszcze nie dawno byłem przciwnikiem sesji, bo skoro opiera się na cookie to po co jej używać, ale teraz po prostu wiem, że przy cookie łatwiej się pomylić, to tak jak by powiedziec, po co komu Windows/Linux jak można bezpośrednio pisac komendy w asemblerze cookies mają sens jedynie przy długoterminowym przechowywaniu zmiennych (tydzień, miesiąc, ...) Ten post edytował php programmer 28.02.2006, 11:36:38 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 149 Pomógł: 0 Dołączył: 18.04.2004 Skąd: Z nikąd Ostrzeżenie: (30%) ![]() ![]() |
ok, a w sesjach chyba niekonieczne jest przechowywanie hasla? wystarczy nazwa usera?
dla pewnosci pytam |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 5 Dołączył: 8.11.2004 Skąd: trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
Nie trzeba, hasło sprawdza się tylko za pierwszym razem w bazie
a potem tylko ustawiasz w sesji że dany użytkownik jest zalogowany, (zresztą w przypadku cookie też nie trzeba trzymać hasła) |
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 2 258 Pomógł: 16 Dołączył: 21.09.2004 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Cytat że przy cookie łatwiej się pomylić, Kiepski argument, łatwiej się pomylić ? Że wcisnę inną cyfrę na klawiaturze ? To od dzisiaj zaczynam programować tylko myszką (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) Cytat to tak jak by powiedziec, po co komu Windows/Linux jak można bezpośrednio pisac komendy w asemblerze LOL (IMG:http://forum.php.pl/style_emoticons/default/thumbsupsmileyanim.gif) |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 5 Dołączył: 8.11.2004 Skąd: trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
No z tym Linuxem to argument troche przesadzony, ale oddaje co miałem na myśli
|
|
|
![]()
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(php programmer @ 2006-02-28 11:18:39) prostu wiem, że przy cookie łatwiej się pomylić, to tak jak by powiedziec, po co komu Windows/Linux jak można bezpośrednio pisac komendy w asemblerze A po co słuchać takich głupot skoro można posuchać kogoś kto ma konkretne argumenty. Już nawet nie mówię o sobie. Ważne żeby nie Ciebie z takimi głupotami na języku (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 743 Pomógł: 0 Dołączył: 11.11.2003 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Cytat(php programmer @ 2006-02-28 12:33:47) Nie trzeba, hasło sprawdza się tylko za pierwszym razem w bazie a potem tylko ustawiasz w sesji że dany użytkownik jest zalogowany, (zresztą w przypadku cookie też nie trzeba trzymać hasła) A to Ciekawe. I np. komuś chcesz usunąć konto a on ma tylko informację o tym że jest zalogowany i chodzi po stronce mimo ze go już nie ma. Ktoś komuś wykrada hasło. User wysyła sobie przypomnienie na maila. zmienia hasło a tamten może mu nadal łazić po koncie mimo że ma już nieaktualne hasło bo ma nastawione w cookie Zalogowany. Bez sensu. W cookie nalezy trzymać login i hasło zakodowane i sprawdzac przy każdej odsłonie. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 5 Dołączył: 8.11.2004 Skąd: trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
ok, no to tym bardziej sie ujawnia przewaga sesji,
(zamkniesz okno i juz jesteś automatycznie wylogowany) |
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat (zamkniesz okno i juz jesteś automatycznie wylogowany) i co z tego? ale koles co ci biega na Twoim hasle nie zamyka okna i nadal ma sesję i nadal jest zalogowany i nadal ci bruździ na koncie do bulu. zastanow sie zanim coś napiszesz. W koncu posiadasz "wiedzę popartą wieloletnim doświadczeniem". Nie szargaj tak se opini (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 5 Dołączył: 8.11.2004 Skąd: trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
o matko,
no chyba koleś nie będzie trzymał przez miesiąc otwartej przeglądarki, więcej za prąd zapłaci niż by miał z tego korzyść Ten post edytował php programmer 28.02.2006, 12:06:30 |
|
|
![]()
Post
#15
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@php programmer jesteś niesamowity (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Musisz być szczęsliwy, bo widze ze wogole nie przejmujesz się opiniami innych (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Kolesiowi wystarczy 5 minut by ci nabruździc na twoim koncie. |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 5 Dołączył: 8.11.2004 Skąd: trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
nospor jesteś niekonsekwentny w swoich wypowiedziach,
włamywacz najpierw musi się włamac żeby mieć hasło, skoro już się włamie, to przecież admin nie musi wcale wiedzieć że ktoś się włamał, (włamał się na dodatek w nocy spacjalnie jak wszyscy śpią) i i tak nie zmieni hasła Ten post edytował php programmer 28.02.2006, 12:13:23 |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 743 Pomógł: 0 Dołączył: 11.11.2003 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
A co z logowaniem na stałe ?
U mnie na stronie większość osób korzysta z zapamiętywania hasła. Jak chcą się wylogować to mogą. A gdy chcę ich usunąć to już najbliższe kliknięcie go wywala z konta. A tak jak napisał nospor 5 minut wystarcza. No ale jak chcesz to upieraj się dalej przy swoim nawet jeśli kilka osób mówi Ci to samo. Pozdro --- edit --- To co jak już się włamał to niech sobie siedzi miesiącami na koncie ? I nie ma siły go wywalić ? Bezsens Lub jeszcze inna sytuacja. Ktoś mi zmienia hasło ... mnie nie wywala i nawet nie wiem że mi zmienił i sobie używam konta przez miesiąc nie wiedzą że ktoś mi zmienił hasło a on z mojego konta może czytać jakieś informacje kierowane tylko do mnie. A zresztą mówisz że w cookies mozna popełnić błąd z time()+3600 a 3600 a taki błąd że ktoś może komuś na koncie siedzieć Cię nie razi. Przez to widać że mowisz tylko to co Ci pasuje nie patrząc na opinię innych. Bo błąd mało ważny powodowany z Twojej winy jakim jest czas życia Cookie jest tak wazny że przekonujesz kogoś do nie korzystania z niego a to że ktoś się włamie na konto jest dla ciebie mało wazne. Ten post edytował Kuziu 28.02.2006, 12:20:10 |
|
|
![]()
Post
#18
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat nospor jesteś niekonsekwentny w swoich wypowiedziach, Nie rozumiem.Spojrz na to globalnie. ale moze akurat admin o tym wie i ma szanse temu zapobiec. W twoim skrypcie nie bedzie mial tej szansy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Mowimy tu tez o prawach. Dla danego usera mogą się one w danej chwili zmienic, ze nie moze czegos zrobic. Niesprawdzając tego, skrypt mu na to pozwoli, bo jest zalogowany na starych prawach. I wiele innych. Ale juz skonczmy z tym bo nie raz daleś przyklad, że ciebie nie da się przekonać |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
osobiście uważam, że trzymanie w cookies loginu i hasła to nie jest najlepszy pomysł. nie ma przynajmniej większego uzasadnienia dla tego, bowiem w zupełności wystarczy session_id (i wcale nawet nie trzeba do tego używać mechanizmu obsługi sesji wbudowanego w php). oczywiście nie należy trzymać w samych danych sesyjnych informacyji o tym czy user zalogowany oraz jakie ma prawa. trzeba natomiast sprawdzać to przy każdym żądaniu na podstawie user_id trzymanym jako zmienna sessyjna [nie cookie] (user wtedy nie masz szans wykonać czynności do których nie jest uprawniony, także wtedy gdy już po zalogowaniu został usunięty albo zmieniono mu prawa).
ze względów bezpieczeństwa oczywiście najlepiej wyłączyć transparentne przekazywanie session_id w adresie, tj. uzywac tylko cookies (m.in. session.use_only_cookie czy jakos tak) --- EDIT: co do logowania na stałe, to tu też nie używałbym loginu i hasła a też jakiś hash np. md5, tylko nie ten sam co session_id. sesson_id ma dotyczyć (jak sama nazwa wskazuje) danej sesji usera. Ten post edytował sopel 28.02.2006, 12:52:18 |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 0 Dołączył: 21.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Teraz mnie dopiero zmieszaliscie;)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 17:59 |